package com;

import java.io.*;

/**
 * @author 后台赖骏
 * @version 1.0
 *
 */
public class FileCopier {

    /**
     * 这个方法是程序的核心功能，将用户输入的路径传入到这个方法中，进行原文件进行读取，再使用输出流对其进行文件输出
     * 完成复制
     * @param oldPathName 用户输入的源文件路径
     * @param newPathName 用户输入的目标文件路径
     * @throws FileNotFoundException 这个是用于源文件路径不存在是，在调用它的方法中catch并且提示用户
     */
    public static void copy(String oldPathName,String newPathName) throws IOException {
        //创建输入流
        File oldFile = new File(oldPathName);
        BufferedInputStream inputStream;
        try {
            inputStream = new BufferedInputStream(new FileInputStream(oldFile));
        } catch (FileNotFoundException e) {
            //发生异常则进行对用户错误进行提示
            System.out.println("你输入的原文件路径错误或者指定的路径是一个文件夹，请重新输入");
            return;
        }
        //创建输出流

        File newFile = new File(newPathName);

        BufferedOutputStream outputStream;
        try {
            outputStream = new BufferedOutputStream(new FileOutputStream(newFile));
        } catch (FileNotFoundException e) {
            //发生异常则进行对用户错误进行提示
            System.out.println("你输入复制文件的路径错误或者指定的路径是一个文件夹，请重新输入");
            return;
        }
        //使用输入流将数据输入到程序，然后在使用输出流输出出去
        byte[] bytes = new byte[1024];
        int len ;
        while((len = inputStream.read(bytes)) != -1){
            outputStream.write(bytes,0,len);
        }
        System.out.println("复制成功");
        //关闭流
        inputStream.close();
        outputStream.close();
    }

}
